﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Gustozzi.DAL;
using Gustozzi.BL;
using Microsoft.Reporting.WebForms ;
using System.IO;
namespace WebGustozzi.ModuloVentas
{

    ///<summary>
    ///Nombre	    : GenerarReportePedidos
    ///Descripción	: Permite obtener el reporte de pedido de ventas de acuerdo 
    ///               a las condiciones seleccionadas.
    ///</summary>
    ///<remarks>
    ///Fecha        Moficado Por        Descripción
    ///07/02/2012   Marco Pizarro	    Versión inicial
    ///</remarks>
    public partial class GenerarReportePedidos : System.Web.UI.Page
    {
        string rutaReporte = string.Empty;
        VentasDataEntities contexto = null;

        #region Inicio

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                Inicializa();
            }
        }

        public void Inicializa()
        {
            VentasDataEntities contexto = new VentasDataEntities();

            var resultado = from v in contexto.Vendedores.Include("Empleado")
                            select new { NombreVendedor = v.Empleado.apellidoPaterno + " " + v.Empleado.apellidoMaterno + ", " + v.Empleado.nombre, v.codigoVendedor };

            ddlVendedor.DataSource = resultado;
            ddlVendedor.DataValueField = "codigoVendedor";
            ddlVendedor.DataTextField = "NombreVendedor";
            ddlVendedor.DataBind();

            txtFechaDesde.Attributes.Add("onblur", String.Format("FechaValida('{0}','{1}','{2}')", txtFechaDesde.ClientID, "Reporte de Pedidos", "Ingrese una Fecha de Inicio válido"));
            txtFechaHasta.Attributes.Add("onblur", String.Format("FechaValida('{0}','{1}','{2}')", txtFechaHasta.ClientID, "Reporte de Pedidos", "Ingrese una Fecha de Fin válido"));
            btnGenerar.Attributes.Add("onClick", "return ValidarFechas()");

            var resultadoCliente = (from c in contexto.Clientes
                                    select new
                                    {
                                        Codigo = c.codigoCliente,
                                        Nombre = c.apellidoPaternoCliente + " " +
                                            c.apellidoMaternoCliente + "  " +
                                            c.nombreCliente
                                    });

            ddlCliente.DataSource = resultadoCliente;
            ddlCliente.DataValueField = "Codigo";
            ddlCliente.DataTextField = "Nombre";
            ddlCliente.DataBind();

            var resultadoLocal = (from c in contexto.LocalesComerciales
                                  select new
                                  {
                                      Codigo = c.codigoLocal,
                                      Nombre = c.nombreLocal
                                  }).ToList();

            ddlLocal.DataSource = resultadoLocal;
            ddlLocal.DataValueField = "Codigo";
            ddlLocal.DataTextField = "Nombre";
            ddlLocal.DataBind();

            txtFechaDesde.Text = DateTime.Now.ToShortDateString();
            txtFechaHasta.Text = DateTime.Now.ToShortDateString();
        }

        #endregion

        #region Eventos
        protected void imbCerrar_Click(object sender, ImageClickEventArgs e)
        {
            Response.Redirect("../wfPrincipal.aspx");
        }


        protected void btnGenerar_Click(object sender, EventArgs e)
        {
            try
            {
                rvwPedidos.LocalReport.Refresh ();
            }
            catch (Exception)
            {

                throw;
            }

        }

        public void BindDataToReport()
        {
            if (contexto == null)
            {
                contexto = new VentasDataEntities();
            }

            rutaReporte = "ModuloVentas\\repVe_PedidoVenta.rdlc";

            List<BuscarPedido_Result> dataReporte = null;// contexto.BuscarPedido2().ToList();//contexto.BuscarPedido(dtmFechaInicio, dtmFechaFin, idVendedor, idCliente, codigoLocal, estado, null, null).ToList();

            if (dataReporte != null && dataReporte.Count > 0)
            {
                rvwPedidos.Visible = true;
                rvwPedidos.LocalReport.ReportEmbeddedResource = rutaReporte;
                ReportDataSource rptDataSource = new ReportDataSource("ReportDataSource",dataReporte);
                rvwPedidos.LocalReport.DataSources.Add(rptDataSource);
                rvwPedidos.LocalReport.Refresh();
            }
        }

        protected void btnCerrar_Click(object sender, EventArgs e)
        {
            Response.Redirect("../wfPrincipal.aspx");
        }

        #endregion
    }
}
